package com.kawins.supers.message.socket;

import com.kawins.supers.message.socket.bean.SocketMessage;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * @author rankai
 *         createTime 2018-01-2018/1/22 17:26
 */
public interface IWebSocket {

    /**
     * 给某人发送信息
     *
     * @param key
     * @param message
     */
    void sendMessage(Serializable key, SocketMessage message, boolean onlyLin);

    /**
     * 给某人对应的Session发送信息
     *
     * @param key
     * @param message
     */
    void sendMessage(Serializable key, Serializable sessionId, SocketMessage message);

    /**
     * 给某人发送信息组
     *
     * @param key
     * @param messages
     */
    void sendMessage(Serializable key, List<SocketMessage> messages, boolean onlyLin);

    /**
     * 给某人对应的Session发送信息组
     *
     * @param key
     * @param messages
     */

    void sendMessage(Serializable key, Serializable sessionId, List<SocketMessage> messages);

    /**
     * 给集合所在用户推送消息
     *
     * @param keys
     * @param message
     */
    void sendMessage(Set<Serializable> keys, SocketMessage message, boolean onlyLin);

    /**
     * 给全部在线用户推送消息
     *
     * @param socketMessage
     */
    void sendMessage(SocketMessage socketMessage);
}
